package com.tro.mail.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.tro.mail.dao.entity.MailMain;
import com.tro.mail.dao.entity.MailMainExample;
import com.tro.mail.vo.InBoxVOSearch;

public interface MailMainManager {
    int countByExample(MailMainExample example);

    int deleteByExample(MailMainExample example);

    int deleteByPrimaryKey(Long id);

    int insert(MailMain record);

    int insertSelective(MailMain record);

    List<MailMain> selectByExampleWithBLOBs(MailMainExample example);

    List<MailMain> selectByExample(MailMainExample example);

    MailMain selectByPrimaryKey(Long id);

    int updateByExampleSelective(@Param("record") MailMain record, @Param("example") MailMainExample example);

    int updateByExampleWithBLOBs(@Param("record") MailMain record, @Param("example") MailMainExample example);

    int updateByExample(@Param("record") MailMain record, @Param("example") MailMainExample example);

    int updateByPrimaryKeySelective(MailMain record);

    int updateByPrimaryKeyWithBLOBs(MailMain record);

    int updateByPrimaryKey(MailMain record);
    
    void sendMail(MailMain record);
    
    void sendMailN(MailMain record);
    
    void delMail(String mailIds);
    
    void addStar(String mailIds);
    
    void unStar(String mailIds);
    
    List<MailMain> getMails(InBoxVOSearch example);
    int getMailsCount(InBoxVOSearch example);
}